Task: create SIMPLE model
The Structured Intuitive Model of Product Line Economics (SIMPLE) provides an easy way for the manager to model the expected costs and benefits of a specific approach to realizing a product line.
Disciplines: ScopingOrganizational PlanningTechnical Planning
Purpose

The SIMPLE provides a starting point for modeling

Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory: Optional:
  • None
Outputs
Main Description

Managers need to be able to model the expected costs and benefits of the product line approach to supplement their arguments for using this approach. The Structure, Intuitive Model of Product Line Economics (SIMPLE) uses an expression like this:

A basic SIMPLE model uses 4 cost functions:

1. Corg() is a function that, given the relevant parameters, returns how much it costs an
organization to adopt the product line approach for its products. Such costs can include
reorganization, process improvement, training, and whatever other organizational
remedies are necessary.
2. Ccab() is a function that, given the relevant parameters, returns how much it costs to
develop a core asset base suited to satisfy a particular scope. Ccab takes into account the
costs of performing a commonality/variability analysis; defining the product line’s scope
[Clements 04]; designing and then evaluating a generic (as opposed to one-off) software
architecture; and developing the software so designed. Ccab also includes building the
production plan, establishing the development environment, and producing a testing
architecture and other artifacts that are reusable across the family. Ccab may be invoked
to tell us the cost of developing a core asset base where none currently exists or the cost
of deriving a desired core asset base from one or more bases already in place. Note that
the core asset base can (and should) also include non-software assets such as plans,
schedules, budgets, the scope definition, and various kinds of documentation. It also
includes the artifacts that tell you how to produce products from core assets; an example
of such an artifact is a production plan.
3. Cunique() is a function that, given the relevant parameters, returns how much it costs to
develop the unique parts (both software and non-software) of a product that are not
based on assets in the core asset base. The result might be a complete product (i.e., one
that is not a member of a product line) or the unique part of a product whose remainder
is built atop the core asset base of a product line.
4. Creuse() is a function that, given the relevant parameters, returns how much it costs to
build a product reusing core assets from a core asset base. Creuse includes the cost of
locating a core asset, checking it out of the repository, tailoring it for use in the intended
application, and performing the extra tests associated with reusing core assets.

SIMPLE also includes a Benefits function that returns the value of the benefits realized by using the product line approach.


Steps
Define the problem
 
Write down the decision that is facing the product line organization.  Express it as a scenario that chooses between two or more alternatives
Determine cost of each alternative solution
 
2.List the monetary costs of each alternative using SIMPLE’s cost functions.
Corg() returns the cost to an organization of adopting the product line approach for its products.  Such costs can include reorganization, process improvement, training, and whatever other organizational remedies are necessary. 
Ccab() returns the development cost to develop a core asset base suited to satisfy a particular scope.  Ccab takes into account the cost of performing a commonality/variability analysis, defining the product line’s scope the cost of designing and then evaluating a generic (as opposed to one-off) software architecture, and the cost of developing the software so designed. Ccab may be invoked to tell us the cost of developing a core asset base where none currently exists, or it may be invoked to tell us the cost of deriving a desired core asset base from one or more already in place.
Cunique() returns the software development cost for the part of a product not based on a product line’s core asset base – that is, software unique to a particular product.  
Creuse() returns the development cost to reuse core assets in a core asset base. Creuse includes the cost of locating a core asset, checking it out of the repository, tailoring it for use in the intended application, and performing the extra integration tests associated with reusing core assets.
Cprod() returns the development costs associated with building a product in a stand-alone manner, rather than as a member of a software product line.
List monetary benefits for each alternative
 
3.List the monetary benefits of each alternative using SIMPLE’s benefit functions.
Express each benefit in the form BBenefit()
Construct a cost/benefit function

Fill in the terms of the SIMPLE formula

Evaluate the SIMPLE formula
The SIMPLE formula is evaluated. This may be done using  a spreadsheet representation and a Monte Carlo simulation macro. The formula is evaluated repeatedly using a random jitter added to approximate the degree of uncertainty in the original estimate of the data value.
Select the appropriate alternative
The alternative forms the basic approach to production of the software product line. The decision is revisited periodically to ensure that the approach is still optimal.
Key Considerations
The cost and benefit functions can be arranged in numerous ways to model several different financial values such as cost/benefit analysis and ROI.
More Information
Guidelines